package com.carrental.crm.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.carrental.crm.dto.OrderQueryDTO;
import com.carrental.crm.entity.Order;
import com.carrental.crm.vo.OrderVO;

import java.util.Map;

/**
 * 订单服务接口
 */
public interface OrderService extends IService<Order> {

    /**
     * 创建订单
     * 
     * @param params 订单参数
     * @return 创建结果
     */
    boolean createOrder(Map<String, Object> params);

    /**
     * 分页查询当前登录客户的订单
     *
     * @param queryDTO 查询条件
     * @return 订单VO分页
     */
    Page<OrderVO> pageMyOrders(OrderQueryDTO queryDTO);

    /**
     * 取消订单
     *
     * @param orderNo 订单编号
     * @return 是否成功
     */
    boolean cancelOrder(String orderNo);

    /**
     * 支付订单
     *
     * @param orderNo 订单编号
     * @param payType 支付方式
     * @return 是否成功
     */
    boolean payOrder(String orderNo, Integer payType);

    /**
     * 获取订单详情
     *
     * @param orderNo 订单编号
     * @return 订单VO
     */
    OrderVO getOrderDetail(String orderNo);
}